import Vue from 'vue'
import App from './App.vue'
import "./style/reset.less"
// 7、引入路由对象
import router from "./router/index.js"
import hmInput from "./components/hmInput.vue";
Vue.component("hmInput",hmInput);//自定义的组件使用这种方式注册

Vue.config.productionTip = false
import axios from "./utils/request"
// 注册全局过滤器，实现路径拼接
Vue.filter("joinPath", (val)=>{
  if(val&&val.indexOf("http") != -1 ){
    // 添加判断，，如果val值已经存在基础路径了，则不需要拼接基础路径，直接返回
    return val
  }
  return  axios.defaults.baseURL + val;
})
// 自动按需引入
import {Grid, GridItem,List,PullRefresh,Tab, Tabs,Field,Dialog, Uploader,Icon, Button,Toast,Cell, CellGroup,NavBar } from 'vant';

Vue.use(Grid);
Vue.use(GridItem);
Vue.use(List);
Vue.use(PullRefresh);
Vue.use(Tab);
Vue.use(Tabs);
Vue.use(Field);
// 全局注册
Vue.use(Dialog);
Vue.use(Uploader);
Vue.use(Icon);
Vue.use(NavBar);
Vue.use(Cell);
Vue.use(CellGroup);
Vue.use(Toast);
Vue.use(Button);


// 添加导航守卫，做路由权限，比如：个人中心必须登录后才能访问（因为个人中心必须拿到登录后的用户id才能够渲染数据）
let arr = ["/personal","/edit_profile" ];
router.beforeEach((to,from,next)=>{
  // console.log(to,from);
  let token = localStorage.getItem("hm-token-71");

  if(to.path == "/index"&&from.path=="/login"){
    // 设置从登陆页面进入首页时，默认选中的栏目下标值。
    to.meta.curIndex = token?1:0;
  }

  if(arr.indexOf(to.path)!=-1&&!token){
    Toast.fail("请登录！")
    // next方法传入false表示阻止路由跳转，传入路由路径，表示跳转到指定的路由路径中
    next("/login"); // 当访问的页面是个人中心且没有登录的时候阻止跳转到个人中心页面
  }else{
    next();
  }
})

new Vue({
  router:router, // 8、将路由对象注入到new Vue中
  render: h => h(App),
}).$mount('#app')
